package com.powernode.service.impl;

import com.powernode.constant.Constants;
import com.powernode.entity.Orders;
import com.powernode.service.OrderService;
import jakarta.annotation.Resource;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

/**
 * 订单服务实现类
 * 负责处理订单相关的核心业务逻辑，包括订单查询、创建和状态管理
 * 当前实现聚焦于从Redis中查询秒杀订单结果，支持高并发场景下的快速响应
 */
@Service
public class OrderServiceImpl implements OrderService {
    @Resource
    private RedisTemplate redisTemplate;

    /**
     * 查询用户秒杀订单结果
     * 从Redis中获取用户针对特定商品的秒杀订单状态，适用于秒杀后的订单状态查询场景
     * @param uid 用户ID
     * @param gid 商品ID
     * @return 订单对象，如果用户未秒杀成功或订单不存在则返回null
     */
    @Override
    public Orders queryOrderResult(Integer uid, Integer gid) {
        // 构建Redis中的订单结果key，格式为Constants.REDIS_RESULT + 商品ID + 冒号 + 用户ID
        // 例如："result:1001:user123"表示用户user123对商品1001的秒杀结果
        Orders orders = (Orders)redisTemplate.opsForValue().get(Constants.REDIS_RESULT + gid + ":" + uid);

        return orders;
    }
}
